#include <gtest/gtest.h>
#include <ros/ros.h>
#include <shared_memory_communicator/shared_memory_communicator.hpp>
#include <std_msgs/Header.h>

using namespace std;
TEST(sm_test, testPublishAndRead)
{
  SharedMemoryROSCommunicator<std_msgs::Header> sharedMemoryRosCommunicator("test_head");
  std_msgs::Header header;
  header.stamp = ros::Time::now();

  sharedMemoryRosCommunicator.publish(header);

  std_msgs::Header new_header = sharedMemoryRosCommunicator.read();
  cout << new_header << endl;
}

int main(int argc, char **argv)
{
  // 程序运行之后，可以在终端显示测试结果，也会以.xml文件的格式存储到指定路径文件夹，
  // 且.xml文件的名字默认是测试程序的节点的名字，多次运行测试程序，不会覆盖之前的测试文件。
  //  testing::GTEST_FLAG(output) = "xml:/home/jd/";
  // 初始化测试器
  testing::InitGoogleTest(&argc, argv);

  ros::init(argc, argv, "test_node");
  ros::NodeHandle nh;

  // 开始执行所有的测试，如果全部通过则返回0，否则返回1
  // 此步是必须的，否则不会执行测试
  return RUN_ALL_TESTS();
}
